package com.sunda.spmsorder.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsorder.dto.CategoryCreateDTO;
import com.sunda.spmsorder.dto.CategoryUpdateDTO;
import com.sunda.spmsorder.entity.MaterialCategory;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 物料分类表 服务类
 * </p>
 *
 * @author Wayne
 * @since 2020-11-16
 */
public interface IMaterialCategoryService extends IService<MaterialCategory> {

    /** 获取商城目录全部简要数据，目录呈现时可能用到 */
    List<Map<String, Object>> getMaterialCategoryList();

    /** 获取商城目录全部详情数据，目录维护时可能用到 */
    List<Map<String, Object>> getMaterialCategoryDtlList();

    /** 根据目录编号获取对应物料详细分页信息，使用 PageHelper 分页方法对 List<Map<K, V>> 数据分页 */
    Map<String,Object> getCategoryMaterial(String categoryId, int pageNo, int pageSize);

    /** 根据用户传入信息新增或更新 目录-物料 关系数据 */
    ResponseResult createCategoryMaterial(JSONObject jsonObject, String userId);

    /** 根据用户输入uuid列表，删除目录-物料关系数据 */
    ResponseResult deleteCategoryMaterial(String [] doc, String userId);



    /** 根据用户输入信息 新增 请购商城目录数据； */
    ResponseResult createCategory(CategoryCreateDTO categoryCreateDTO, String userId);

    /** 根据用户输入信息 更新 请购商城目录数据； */
    ResponseResult updateCategory(List<CategoryUpdateDTO> categoryUpdateDTOList, String userId);

    /** 停用或启用 请购商城目录分类数据，isDeleted = 1 删除，isDeleted = 0 启用； */
    ResponseResult deleteCategory(Integer categoryId, String isDeleted, String userId);

    /** 获取停用目录信息 */
    ResponseResult getDeletedCategory();

}
